/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.latesis.movil.util;

import com.latesis.bean.AlertaBean;
import com.latesis.bean.ChoferBean;
import com.latesis.bean.DetalleServicioBean;
import com.latesis.bean.DetalleTarifaBean;
import com.latesis.bean.EstadoBean;
import com.latesis.bean.MensajeBean;
import com.latesis.bean.MovilBean;
import com.latesis.bean.ServicioBean;
import com.latesis.bean.TarifaBean;
import com.latesis.bean.ZonaBean;
import com.latesis.movil.bean.MAlertaBean;
import com.latesis.movil.bean.MChoferBean;
import com.latesis.movil.bean.MDetalleServicioBean;
import com.latesis.movil.bean.MDetalleTarifaBean;
import com.latesis.movil.bean.MEstadoBean;
import com.latesis.movil.bean.MMensajeBean;
import com.latesis.movil.bean.MMovilBean;
import com.latesis.movil.bean.MServicioBean;
import com.latesis.movil.bean.MTarifaBean;
import com.latesis.movil.bean.MZonaBean;
import java.util.ArrayList;
import java.util.Date;

/**
 *
 * @author Diego
 */
public class MovilWrapper {
    public static MChoferBean toMChofer(ChoferBean chofer){
        MChoferBean mChofer=new MChoferBean();
        mChofer.setApellidoMaterno(chofer.getApellidoMaterno());
        mChofer.setApellidoPaterno(chofer.getApellidoPaterno());
        mChofer.setCodigo(chofer.getCodigo());
        mChofer.setEstado(chofer.getEstado());
        mChofer.setFoto(chofer.getFoto());
        mChofer.setIdBD(chofer.getId());
        mChofer.setLicencia(chofer.getLicencia());
        mChofer.setLogin(chofer.getLogin());
        mChofer.setNombres(chofer.getNombres());
        mChofer.setNumeroDocumento(chofer.getNumeroDocumento());
        mChofer.setPassword(chofer.getNumeroDocumento());
        mChofer.setTipoDocumento(chofer.getTipoDocumento());
        return mChofer;       
    }
    
    public static MMovilBean toMMovil(MovilBean movil){
        MMovilBean mMovil=new MMovilBean();
        mMovil.setCodigo(movil.getCodigo());
        mMovil.setIdBD(movil.getId());
        mMovil.setMarca(movil.getMarca());
        mMovil.setModelo(movil.getModelo());
        mMovil.setOcupado(Boolean.FALSE);
        mMovil.setPlaca(movil.getPlaca());
        return mMovil;
    }
    
    public static MEstadoBean toMEstado(EstadoBean estado){
        MEstadoBean mEstado=new MEstadoBean();
        mEstado.setCodigo(estado.getCodigo());
        mEstado.setDescripcion(estado.getDescripcion());
        mEstado.setIdBD(estado.getId());
        mEstado.setNombre(estado.getNombre());
        mEstado.setServicioAsignado(estado.getServicioAsignado()?1:0);
        mEstado.setServicioLibre(estado.getServicioLibre()?1:0);
        mEstado.setTipo(estado.getTipo());
        return mEstado;
    }
    
    public static MAlertaBean toMAlerta(AlertaBean alerta){
        MAlertaBean mAlerta=new MAlertaBean();
        mAlerta.setCodigo(alerta.getCodigo());
        mAlerta.setColor(alerta.getColor());
        mAlerta.setDescripcion(alerta.getDescripcion());
        mAlerta.setIdBD(alerta.getId());
        mAlerta.setImportancia(alerta.getImportancia());
        mAlerta.setNombre(alerta.getNombre());
        return mAlerta;
    }
    
    public static MZonaBean toMZona(ZonaBean zona){
        MZonaBean mZona=new MZonaBean();
        mZona.setDescripcion(zona.getDescripcion());
        mZona.setIdBD(zona.getId());
        mZona.setNombre(zona.getNombre());
        return mZona;
    }
    
    public static MTarifaBean toMTarifa(TarifaBean tarifa){
        MTarifaBean mTarifa=new MTarifaBean();
        mTarifa.setIdBD(tarifa.getId());
        mTarifa.setIdZonaDestino(tarifa.getZonaDestino().getId());
        mTarifa.setIdZonaOrigen(tarifa.getZonaOrigen().getId());
        ArrayList<MDetalleTarifaBean> ar=new ArrayList<MDetalleTarifaBean>();
        for(DetalleTarifaBean detalle:tarifa.getDetallesTarifa()){
            MDetalleTarifaBean mDetalle=new MDetalleTarifaBean();
            mDetalle.setDescripcion(detalle.getDescripcion());
            mDetalle.setIdBD(detalle.getId());
            mDetalle.setIdTarifa(tarifa.getId());
            mDetalle.setMonto(detalle.getMonto());
            ar.add(mDetalle);                    
        }
        mTarifa.setDetallesTarifa(ar);
        return mTarifa;
    }
    
    public static MMensajeBean toMMensaje(MensajeBean mensaje, Long idChofer){
    
        MMensajeBean mMensaje=new MMensajeBean();
        mMensaje.setIdBD(mensaje.getId());
        mMensaje.setTexto(mensaje.getTexto());
        mMensaje.setTitulo(mensaje.getTitulo());
        mMensaje.setFechaCreacion(mensaje.getFechaCreacion());
        mMensaje.setIdChoferBD(idChofer);
        mMensaje.setLeido(false);
        
        return mMensaje;
    }
    
    public static MServicioBean toMServicio(ServicioBean servicio){
        MServicioBean mServicio=new MServicioBean();
        mServicio.setIdBD(servicio.getId());
        if(servicio.getChofer()!=null){
            mServicio.setIdChoferBD(servicio.getChofer().getId());
        }
        if(servicio.getMovil()!=null){
            mServicio.setIdMovilBD(servicio.getMovil().getId());
        }
        
        mServicio.setTipo(servicio.getTipo());
        mServicio.setTelefono(servicio.getTelefono());
        mServicio.setObservacion(servicio.getObservacion());
        mServicio.setFinalizado(servicio.getFinalizado());
        mServicio.setFechaRegistro(servicio.getFechaRegistro());
        
        mServicio.setClienteNombres(servicio.getCliente().getNombres());
        mServicio.setClienteApellidoPaterno(servicio.getCliente().getApellidoPaterno());
        mServicio.setClienteApellidoMaterno(servicio.getCliente().getApellidoMaterno());
        
        mServicio.setDireccion(servicio.getDireccion().getDireccion());
        mServicio.setReferencia(servicio.getDireccion().getReferencia());
        mServicio.setDireccionLatitud(servicio.getDireccion().getLatitud());
        mServicio.setDireccionLongitud(servicio.getDireccion().getLongitud());
        mServicio.setDireccionTipoGPS(servicio.getDireccion().getTipoGPS());
        
        mServicio.setIdUltimoEstado(servicio.getUltimoEstadoServicio().getId());        
        mServicio.setSincronizado(Boolean.TRUE);
        
        ArrayList<MDetalleServicioBean> ar=new ArrayList<MDetalleServicioBean>();
        for(DetalleServicioBean detalle:servicio.getDetallesServicio()){            
            MDetalleServicioBean mDetalle=new MDetalleServicioBean();
                        
            mDetalle.setIdBD(detalle.getId());
            mDetalle.setIdEstado(detalle.getEstadoServicio().getId());
            mDetalle.setFechaRegistro(detalle.getFechaRegistro());
            mDetalle.setLatitud(detalle.getLatitud());
            mDetalle.setLongitud(detalle.getLongitud());
            mDetalle.setOrigen(detalle.getOrigen());
            
            mDetalle.setSincronizado(Boolean.TRUE);
                
            ar.add(mDetalle);                    
        }
        
        mServicio.setDetallesServicio(ar);
        return mServicio;
                    
    }
}
